reveal-md 中文文档
将Markdown文件转换为漂亮的reveal.js演示文稿。
安装
1 | npm install -g reveal-md |
使用方法
1 | reveal-md slides.md |
这将启动一个本地服务器,并在默认浏览器中打开任何Markdown文件作为reveal.js演示文稿。
Docker
您可以使用Docker在不需要在您的机器上安装Node.js的情况下运行此工具。运行公共Docker镜像,
将您的Markdown幻灯片作为一个卷提供。以下是一些示例:
1 | docker run --rm -p 1948:1948 -v <path-to-your-slides>:/slides webpronl/reveal-md:latest |
服务现在正在 http://localhost:1948 上运行。
要在容器中启用实时重新加载,还应该映射端口35729。
1 | docker run --rm -p 1948:1948 -p 35729:35729 -v <path-to-your-slides>:/slides webpronl/reveal-md:latest /slides --watch |
特性
Markdown
reveal.js 的 Markdown 功能非常棒,并且具有易于配置的语法来分离幻灯片。使用三个
破折号被两个空行(\n---\n
)包围。例如:
1 | # Title |
代码段
语法高亮
1 | ```js |
高亮显示某些行
您可以选择高亮显示一行、多行或同时高亮显示。
1 | ```python [1|3-6] |
主题
覆盖主题(默认为 black
):
1 | reveal-md slides.md --theme solarized |
请查看可用的主题。
使用自定义主题覆盖reveal主题。在这个例子中,文件位于 ./theme/my-custom.css
:
1 | reveal-md slides.md --theme theme/my-custom.css |
使用远程主题覆盖reveal主题(使用rawgit.com,因为URL必须允许跨站点访问):
1 | reveal-md slides.md --theme https://rawgit.com/puzzle/pitc-revealjs-theme/master/theme/puzzle.css |
高亮主题
覆盖高亮主题(默认为zenburn
):
1 | reveal-md slides.md --highlight-theme github |
查看可用主题。
自定义幻灯片分隔符
覆盖幻灯片分隔符(默认为\n---\n
):
1 | reveal-md slides.md --separator "^\n\n\n" |
覆盖垂直/嵌套幻灯片分隔符(默认为\n----\n
):
1 | reveal-md slides.md --vertical-separator "^\n\n" |
自定义幻灯片属性
使用reveal.js幻灯片属性功能来添加HTML属性,例如自定义背景。或者,为特定的幻灯片添加HTML id
属性,并使用CSS样式设置。
示例:将第二张幻灯片设置为具有PNG图像作为背景:
1 | # slide1 |
reveal-md选项
在Markdown文件的根目录下,定义类似于命令行选项的reveal-md.json
文件中的选项。它们将被自动识别。示例:
1 | { |
Reveal.js选项
在Markdown文件的根目录下定义Reveal.js的选项37,并将其保存在一个名为reveal.json
的文件中。
它们将被自动识别。示例:
1 | { |
演讲者注释
通过以Note:
开头的行来使用演讲者注释功能。
YAML前置元数据
使用YAML前置元数据设置特定于演示文稿的Markdown(和reveal.js)选项:
1 | --- |
实时重新加载
使用 -w
选项,对 markdown 文件进行更改将会触发浏览器重新加载,从而在不需要用户手动重新加载浏览器的情况下显示更改后的演示文稿。
1 | reveal-md slides.md -w |
自定义脚本
将自定义脚本注入到页面中:
1 | reveal-md slides.md --scripts script.js,another-script.js |
- 不要使用绝对文件路径,文件应该在相邻或下级文件夹中。
- 允许使用绝对URL。
自定义CSS
将自定义CSS注入到页面中:
1 | reveal-md slides.md --css style.css,another-style.css |
- 不要使用绝对文件路径,文件应该在相邻或下级文件夹中。
- 允许使用绝对URL。
自定义Favicon
如果包含Markdown文件的目录中存在一个favicon.ico
文件,则会自动将其用作Favicon,而不是默认的Favicon。
预处理Markdown
可以通过--preprocessor
(或-P
)选项给reveal-md
提供一个Markdown预处理脚本。这对于预处理Markdown非常有用。
可以在不深入了解Markdown解析器的内部结构的情况下对文档格式进行自定义调整。
例如,要使标题自动创建新的幻灯片,可以使用以下脚本preproc.js
:
1 | // headings trigger a new slide |
并像这样使用它
1 | reveal-md --preprocessor preproc.js slides.md |
导出为PDF
有至少两种方法可以将一个幻灯片导出为PDF文件。
1. 使用Puppeteer
从提供的Markdown文件创建一个(可打印的)PDF文件:
1 | reveal-md slides.md --print slides.pdf |
PDF是使用Puppeteer生成的。或者,在命令行或浏览器中将?print-pdf
添加到URL中(确保删除#/
或#/1
哈希值)。然后,使用浏览器(而不是本地的)打印对话框打印幻灯片。在Chrome中似乎可以工作。
默认情况下,纸张大小设置为与您的reveal.json
文件中的选项相匹配,如果没有则回退到默认值960x700。
像素。要覆盖这种行为,您可以通过命令行选项--print-size
传递自定义的尺寸或格式。
1 | reveal-md slides.md --print slides.pdf --print-size 1024x768 # in pixels when no unit is given |
如果出现错误,请尝试以下操作:
- 分析调试输出,例如
DEBUG=reveal-md reveal-md slides.md --print
- 查看Puppeteer参数(
puppeteer-launch-args
和puppeteer-chromium-executable
)的帮助文档reveal-md help
- 使用Docker和DeckTape:
2. 使用Docker和DeckTape
当在Docker容器中运行reveal-md时,第一种打印方法目前不起作用,因此建议使用Docker和DeckTape进行打印。
您可以使用DeckTape来打印幻灯片。使用DeckTape可能还可以解决内置打印方法输出的问题。
要使用DeckTape Docker映像在本地主机上运行的reveal-md幻灯片创建PDF文件,请使用以下命令:
1 | docker run --rm -t --net=host -v $OUTPUT_DIR:/slides astefanutti/decktape $URL $OUTPUT_FILENAME |
替换这些变量:
$OUTPUT_DIR
是您想要保存PDF的文件夹。$OUTPUT_FILENAME
是PDF的文件名。$URL
是在浏览器中访问演示文稿的网址(不包括?print-pdf
后缀)。如果您没有在Docker中运行reveal-md,您需要将localhost
替换为您计算机的IP地址。
有关导出选项的完整列表,请参阅DeckTape github,或者在Docker容器中使用-h
标志运行。
静态网站
这将把提供的Markdown文件导出为一个独立的HTML网站,包括脚本和样式表。文件将保存在传递给 --static
参数的目录中(默认为 ./_static
):
1 | reveal-md slides.md --static _site |
这将连同幻灯片一起复制图像。使用--static-dirs
将其他静态资产的目录复制到目标目录中。使用逗号分隔的列表复制多个目录。
1 | reveal-md slides.md --static --static-dirs=assets |
提供一个目录将生成一个独立的概述页面,其中包含指向演示文稿的链接(类似于directory listing):
1 | reveal-md dir/ --static |
默认情况下,生成的网站中包含所有子目录中的所有 *.md
文件。您可以使用 --glob
提供自定义的 glob模式,只从匹配的文件中生成幻灯片:
1 | reveal-md dir/ --static --glob '**/slides.md' |
可以使用--absolute-url
和--featured-slide
参数来生成OpenGraph元数据,从而在某些社交网站上共享幻灯片链接时实现更吸引人的呈现效果。
1 | reveal-md slides.md --static _site --absolute-url https://example.com --featured-slide 5 |
禁用自动打开浏览器
要禁用自动打开浏览器:
1 | reveal-md slides.md --disable-auto-open |
目录列表
显示Markdown文件的(递归)目录列表:
1 | reveal-md dir/ |
显示当前目录中Markdown文件的目录列表:
1 | reveal-md |
自定义端口
覆盖端口 (默认: 1948
):
1 | reveal-md slides.md --port 8888 |
自定义模板
覆盖 reveal.js 的 HTML 模板(默认模板):
1 | reveal-md slides.md --template my-reveal-template.html |
覆盖列表的HTML模板(默认模板):
1 | reveal-md slides.md --listing-template my-listing-template.html |
脚本、预处理器和插件
相关项目和替代方案
- Slides 是一个用于创建、展示和共享幻灯片的平台。
- Sandstorm Hacker Slides 是一个将 Ace Editor 和 RevealJS 结合在一起的简单应用程序。
- Tools 是 Reveal.js 的插件、工具和硬件部分的工具集。
- Org-Reveal 将 Org-mode 内容导出为 Reveal.js HTML 演示文稿。
- DeckTape 是一个用于 HTML5 演示框架的高质量 PDF 导出工具。
- GitPitch 可以从托管在 Git 仓库中的 PITCHME.md 文件生成幻灯片。
关于 reveal-md 的文章
- 使用 reveal markdown 创建精美的幻灯片
- 使用 reveal-md 和 Travis CI 创建自动发布的幻灯片
- 从 markdown 创建漂亮的演示文稿 - 谁知道这么容易?
- 使用 reveal-md 创建技术演示文稿
- 使用reveal-md生成多个幻灯片并将它们托管在GitHub Page上
感谢
非常感谢所有的贡献者!